import implementaciones.Hashtable;

/**
 * Universidad del Valle de Guatemala
 * Mayra Yucely Beb Caal Carne: 12537
 * Vuictor Fuentes       carne: 12298
 * Juan de Dios Chivalan carne: 12175
 *-----------------------------------------------------------------------
 * Utiliza el Hashtable elaborado por Bailey, para poder guardar en el objetos de la 
 * clase Word, y así crear un diccionario con las palabras.
 *----------------------------------------------------------------------
 */

public class HashTableSet implements WordSet{

    
    private Hashtable<String,String> theWordTree;
    
    /**
     * Constructor del 
     */
    public HashTableSet(){
        theWordTree = new Hashtable<>();
    }
    
    /**
     * Anade una nueva palabra al arbol
     */
    @Override
    public void add(Word wordObject) {
        if(!theWordTree.containsKey(wordObject.getWord())){
            theWordTree.put(wordObject.getWord(),wordObject.getType());
        }
    }

    /**
     *en el arbol vuelve a existir la palabra buscada
     */
    @Override
    public Word get(Word word) {
        //Se revisa si la palabra  ya existe  para no volver buscarla
        String theWord = word.getWord();
        if (theWordTree.containsKey(theWord)){
        
            String theWordType = theWordTree.get(theWord);
            Word toReturn = new Word(theWord, theWordType);
            return toReturn;
            
        }else{
            return null;
        }
    }
        
}